import React from "react";
// 数据可以放到外面，但是不是响应式的，数据变了，视图不会更新
/* const arr = [
  { id: 1, name: 'Vue' },
  { id: 2, name: 'React' },
  { id: 3, name: 'Angular' },
] */

export default class App extends React.Component {

  // 继承的时候，子组件一旦有 constructor，constructor 内部必须调用 super()
  // constructor(){
  // // 放大最上面
  //   super()
  //   // this.state 对应的值必须是一个对象
  //   this.state = {
  //     // 对象里面可以放任意自己的状态
  //     name:'张三',
  //     age:18
  //   }
  // }
  // state 等于一个对象，这种写法和上面等价
  state = {
    name: '李四',
    age: 25,
    arr: [
      { id: 1, name: 'Vue' },
      { id: 2, name: 'React' },
      { id: 3, name: 'Angular' },
    ],
  }
  render () {
    // 解构赋值
    const { name, age, arr } = this.state
    return (
      <div>
        <p>App:{name},{age}</p>
        <ul>
          {arr.map(item => (
            <li key={item.id}>{item.name}</li>
          ))}
        </ul>
      </div>
    )
  }
}
// 两种定义状态的差异：constructor 中定义，new 的时候可以传参，传递的参数可以当做状态
// 而 state = {} 不太方便传参